%%
%% hierarchy.tex
%% 
%% Made by Alex Nelson
%% Login   <alex@tomato>
%% 
%% Started on  Wed Aug 26 17:08:23 2009 Alex Nelson
%% Last update Wed Aug 26 17:08:23 2009 Alex Nelson
%% http://linuxmafia.com/pub/linux/suse-linux-internals/toc.html

The file system is grouped into directories and
subdirectories. The standard way to organize this taxonomy of
directories and subdirectories is specified by the File Hierarchy
Standard~\cite{fhs}. We specifically have one directory
everything lives in, we call this special directory the
\textbf{root directory}. We denote it by \texttt{/} to emphasize
in the absolute path there is nothing before it. In fact it
\emph{starts} all (absolute) paths.

The subdirectories of the root directories constitute the bulk of
what we interact with.

In Minix, the file hierarchy is a toy version of what one would
expect on a full blown Unix system. We'll consider the
subdirectories in its root directory as a warm up:
\begin{list}{\quad}{}
\item[{\tt/bin/}] Most common system binaries (e.g. commands on the
  command line) are stored here.
\item[{\tt/boot}] Boot loader files (e.g. kernels, initrd,
  etc.); often this will be its own partition.
\item[\courier{/dev/}] Special file system for input/output devices.
\item[\courier{/etc/}] Miscellaneous system administration.
\item[\courier{/lib/}] Most common libraries are copied to here.
\item[\courier{/minix}] MINIX 3 kernel image.
\item[\courier{/tmp/}] Some utilities generate their temporary data here.
\item[\courier{/usr/}] Root of the user file system.
\item[\courier{/usr/bin}] System binaries are kept here.
\item[\courier{/usr/include}] System header files.
\item[\courier{/usr/lib}] Libraries, compiler passes, misc.
\item[\courier{/usr/man}] Manual pages are stored here, and looked up here.
\end{list}
The directory that is odd at first sight is the \courier{/dev/}
directory. No one really thinks of a device as a file, nor a file
as a device. But think about it: you open, close, read from, and
write to a file. Isn't that the same thing you do to the screen?
Or to the hard disk? Or to a lot of devices for that matter.

On most Linux systems, the file hierarchy is far more than
this. For example, there is \courier{/usr/local/} which has the
same subdirectories as \courier{/usr/} except its role is
different: it is there for quirky programs that are found on the
web, or written by the user, that may not need to be patched up
or looked after.
